import { identityCodeValid, identityDir } from '@/libs/tools'
import dict from '@/libs/dict'
import { getCardNo } from '@/api/record'
import iViewThemes from 'iview-layout-themes'
const xeUtils = iViewThemes.util.xeUtils

// 档案人员导入数据校验处理
export const validateRecord = (item, index, RN) => {
  let error = false
  // 校验姓名
  if (!item.name) {
    item.name = ' （姓名不能为空）'
    item.cellClassName.name = 'trouble-cell'
    error = true
  } else if (item.name.length > 20) {
    item.name = item.name + ' （姓名长度大于20个字符）'
    item.cellClassName.name = 'trouble-cell'
    error = true
  }
  // 校验性别
  if (item.sex === undefined || item.sex === '') {
    item.sex = ' （性别为空）'
    item.cellClassName.sex = 'trouble-cell'
    error = true
  } else if (dict.excelRecordSex.indexOf(item.sex) === -1) {
    item.sex = ' （性别内容错误）'
    item.cellClassName.sex = 'trouble-cell'
    error = true
  }
  // 校验身份证号
  const idcardRtn = identityCodeValid(item.idcard)
  if (!idcardRtn.pass) {
    item.idcard = item.idcard + ' （' + idcardRtn.tip + '）'
    item.cellClassName.idcard = 'trouble-cell'
    error = true
  }
  // 校验退休时间
  if (!item.tui_xiu_date) {
    item.tui_xiu_date = ' （退休时间不能为空）'
    item.cellClassName.tui_xiu_date = 'trouble-cell'
    error = true
  } else if (!/^\d{4}$/.test(item.tui_xiu_date)) {
    item.tui_xiu_date = item.tui_xiu_date + ' （退休时间格式应为4位数字）'
    item.cellClassName.tui_xiu_date = 'trouble-cell'
    error = true
  }
  // 校验养老保险编号
  if (item.yang_lao_no !== undefined && item.yang_lao_no.length > 50) {
    item.yang_lao_no = item.yang_lao_no + ' （养老保险编号过长）'
    item.cellClassName.yang_lao_no = 'trouble-cell'
    error = true
  }
  // 校验社保中心
  if (item.she_bao_zhong_xin !== undefined && item.she_bao_zhong_xin.length > 50) {
    item.she_bao_zhong_xin = item.she_bao_zhong_xin + ' （社保中心名称过长）'
    item.cellClassName.she_bao_zhong_xin = 'trouble-cell'
    error = true
  }
  // 校验民族
  // if (item.nation !== undefined && item.nation.length > 20) {
  //   item.nation = item.nation + ' （民族名称过长）'
  //   item.cellClassName.nation = 'trouble-cell'
  //   error = true
  // }
  if (!item.nation) {
    item.nation = ' （民族不能为空）'
    item.cellClassName.nation = 'trouble-cell'
    error = true
  } else if (item.nation.length > 20) {
    item.nation = item.nation + ' （民族名称过长）'
    item.cellClassName.nation = 'trouble-cell'
    error = true
  }
  // 校验总页数
  // if (item.img_total !== undefined && item.img_total.length > 11) {
  //   item.img_total = item.img_total + ' （总页数过长）'
  //   item.cellClassName.img_total = 'trouble-cell'
  //   error = true
  // }
  if (!item.img_total) {
    item.img_total = ' （总页数不能为空）'
    item.cellClassName.img_total = 'trouble-cell'
    error = true
  } else if (item.img_total.length > 40) {
    item.img_total = item.img_total + ' （总页数过长）'
    item.cellClassName.img_total = 'trouble-cell'
    error = true
  }
  // 校验隶属关系
  if (item.li_shu_guan_xi && dict.excelRecordRelation.indexOf(item.li_shu_guan_xi) === -1) {
    item.li_shu_guan_xi = item.li_shu_guan_xi + ' （隶属关系内容错误）'
    item.cellClassName.li_shu_guan_xi = 'trouble-cell'
    error = true
  }
  // 校验流水号
  if (!item.serial_number) {
    item.serial_number = ' （流水号不能为空）'
    item.cellClassName.serial_number = 'trouble-cell'
    error = true
  } else if (item.serial_number.length > 10) {
    item.serial_number = ' （流水号长度大于10个字符）'
    item.cellClassName.serial_number = 'trouble-cell'
    error = true
  }
  // 校验全宗号
  let qzh = JSON.parse(JSON.stringify(item.record_number)).toString().trim().toLowerCase()
  if (!qzh) {
    item.record_number = ' （全宗号不能为空）'
    item.cellClassName.record_number = 'trouble-cell'
    error = true
  } else if (qzh.length > 10) {
    item.record_number = item.record_number + ' （全宗号长度大于10个字符）'
    item.cellClassName.record_number = 'trouble-cell'
    error = true
  } else if (qzh !== RN) {
    item.record_number = item.record_number + ' （此全宗号与当前账号信息不符）'
    item.cellClassName.record_number = 'trouble-cell'
    error = true
  }
  // else if (!/^[a-zA-Z0-9]*$/.test(item.record_number)) {
  //   item.record_number = item.record_number + ' （全宗号只能由英文和数字组成）'
  //   item.cellClassName.record_number = 'trouble-cell'
  //   error = true
  // }
  if (error) {
    let num = index + 1
    console.log('错误人的数据在' + num + '行', item
    )
  }
  return { error: error, item: item }
}

// 档案材料导入数据校验处理
export const validateMaterial = async (item, index, RN) => {
  let error = false
  // 校验姓名
  if (!item.name) {
    item.name = ' （姓名不能为空）'
    item.cellClassName.name = 'trouble-cell'
    error = true
  } else if (item.name.length > 20) {
    item.name = item.name + ' （姓名长度大于20个字符）'
    item.cellClassName.name = 'trouble-cell'
    error = true
  }
  // 校验身份证号
  const idcardRtn = identityCodeValid(item.idcard)
  if (!idcardRtn.pass) {
    let resultIdCard = xeUtils.cookie.getItem('idCardPass')
    if (resultIdCard === undefined) {
      resultIdCard = []
    } else {
      resultIdCard = JSON.parse(resultIdCard)
    }
    if (xeUtils.indexOf(resultIdCard, item.idcard) === -1) {
      let postResult = await getCardNo({ name: item.name, idcard: item.idcard })
      if (postResult.data.data !== 1) {
        item.idcard = item.idcard + ' （' + idcardRtn.tip + '）'
        item.cellClassName.idcard = 'trouble-cell'
        error = true
      } else {
        resultIdCard.push(item.idcard)
        xeUtils.cookie.setItem('idCardPass', JSON.stringify(resultIdCard), { expires: '10s' })
      }
    }
  }
  // 校验材料名称
  if (!item.title) {
    item.title = ' （材料名称不能为空）'
    item.cellClassName.title = 'trouble-cell'
    error = true
  } else if (item.title.length > 40) {
    item.title = item.title + ' （材料名称长度大于40个字符）'
    item.cellClassName.title = 'trouble-cell'
    error = true
  }
  // 校验文件夹地址（名称）
  const dirRtn = identityDir(item.dir)
  if (!dirRtn.pass) {
    item.dir = item.dir + ' （' + dirRtn.tip + '）'
    item.cellClassName.dir = 'trouble-cell'
    error = true
  } else if (item.dir.length > 20) {
    item.dir = item.dir + ' （文件夹地址（名称）长度大于20个字符）'
    item.cellClassName.dir = 'trouble-cell'
    error = true
  }
  // 校验文件夹中文件数
  if (!item.num) {
    item.num = ' （文件夹中文件数不能为空）'
    item.cellClassName.num = 'trouble-cell'
    error = true
  } else if (!/^\d{1,5}$/.test(parseInt(item.num))) {
    item.num = item.num + ' （文件夹中文件数长度大于5位数）'
    item.cellClassName.num = 'trouble-cell'
    error = true
  }
  // 校验备注
  if (item.remark !== undefined && item.remark.length > 255) {
    item.remark = item.remark + ' （总页数过长）'
    item.cellClassName.remark = 'trouble-cell'
    error = true
  }
  // 校验流水号
  // if (!item.serial_number) {
  //   item.serial_number = ' （流水号不能为空）'
  //   item.cellClassName.serial_number = 'trouble-cell'
  //   error = true
  // } else if (item.serial_number.length > 10) {
  //   item.serial_number = ' （流水号长度大于10个字符）'
  //   item.cellClassName.serial_number = 'trouble-cell'
  //   error = true
  // }
  // 校验全宗号
  let qzh = JSON.parse(JSON.stringify(item.record_number)).toString().trim().toLowerCase()
  if (!qzh) {
    item.record_number = ' （全宗号不能为空）'
    item.cellClassName.record_number = 'trouble-cell'
    error = true
  } else if (qzh.length > 10) {
    item.record_number = item.record_number + ' （全宗号长度大于10个字符）'
    item.cellClassName.record_number = 'trouble-cell'
    error = true
  } else if (qzh !== RN) {
    item.record_number = item.record_number + ' （此全宗号与当前账号信息不符）'
    item.cellClassName.record_number = 'trouble-cell'
    error = true
  }
  // else if (!/^[a-zA-Z0-9]*$/.test(item.record_number)) {
  //   item.record_number = item.record_number + ' （全宗号只能由英文和数字组成）'
  //   item.cellClassName.record_number = 'trouble-cell'
  //   error = true
  // }
  if (error) {
    let num = index + 1
    console.log('错误人的数据在' + num + '行', item
    )
  }
  return { error: error, item: item }
}

// 白名单导入数据校验处理
export const validateWhiteList = (item, index, RN) => {
  let error = false
  // 校验姓名
  if (!item.name) {
    item.name = ' （姓名不能为空）'
    item.cellClassName.name = 'trouble-cell'
    error = true
  }
  // 校验身份证号
  if (!item.idcard) {
    item.idcard = '（证件号不能为空）'
    item.cellClassName.idcard = 'trouble-cell'
    error = true
  }
  if (error) {
    let num = index + 1
    console.log('错误人的数据在' + num + '行', item
    )
  }
  return { error: error, item: item }
}

// 档案批量人员材料导入数据校验处理
export const validateAll = (item, index) => {
  let error = false
  // 校验姓名
  if (!item.name) {
    item.name = ' （姓名不能为空）'
    item.cellClassName.name = 'trouble-cell'
    error = true
  } else if (item.name.length > 20) {
    item.name = item.name + ' （姓名长度大于20个字符）'
    item.cellClassName.name = 'trouble-cell'
    error = true
  }
  // 校验身份证号
  const idcardRtn = identityCodeValid(item.idcard)
  if (!idcardRtn.pass) {
    item.idcard = item.idcard + ' （' + idcardRtn.tip + '）'
    item.cellClassName.idcard = 'trouble-cell'
    error = true
  }
  // 校验材料名称
  if (!item.title) {
    item.title = ' （材料名称不能为空）'
    item.cellClassName.title = 'trouble-cell'
    error = true
  } else if (item.title.length > 200) {
    item.title = item.title + ' （材料名称长度大于200个字符）'
    item.cellClassName.title = 'trouble-cell'
    error = true
  }
  // 校验文件夹地址（名称）
  const dirRtn = identityDir(item.dir)
  if (!dirRtn.pass) {
    item.dir = item.dir + ' （' + dirRtn.tip + '）'
    item.cellClassName.dir = 'trouble-cell'
    error = true
  } else if (item.dir.length > 20) {
    item.dir = item.dir + ' （文件夹地址（名称）长度大于20个字符）'
    item.cellClassName.dir = 'trouble-cell'
    error = true
  }
  // 校验文件夹中文件数
  if (!item.num) {
    item.num = ' （文件夹中文件数不能为空）'
    item.cellClassName.num = 'trouble-cell'
    error = true
  } else if (!/^\d{1,5}$/.test(parseInt(item.num))) {
    item.num = item.num + ' （文件夹中文件数长度大于5位数）'
    item.cellClassName.num = 'trouble-cell'
    error = true
  }
  // 校验备注
  if (item.remark !== undefined && item.remark.length > 255) {
    item.remark = item.remark + ' （总页数过长）'
    item.cellClassName.remark = 'trouble-cell'
    error = true
  }
  if (error) {
    let num = index + 1
    console.log('错误人的数据在' + num + '行', item
    )
  }
  return { error: error, item: item }
}
